Digital cameras are often used for security, surveillance, and monitoring purposes. Camera manufacturers have begun offering digital cameras for video recording in a wide variety of resolutions ranging up to several megapixels. These high resolution cameras offer the opportunity to capture increased image detail, but potentially at a greatly increased cost. Capturing, processing, manipulating, and storing these high resolution video images requires increases central processing unit (CPU) power, bandwidth, and storage space. These challenges are compounded by the fact that most security, surveillance, or monitoring implementations make use of multiple cameras. These multiple cameras each provide a high resolution video stream which the video system must process, manipulate, and store.
System designers have multiple challenges when designing and building processing solutions for these types of video applications. Among other capabilities, the systems must be cost effective and allow operators to readily locate the video in which they are interested. Designers must leverage available technology to capture and store selected video rather than simply processing and storing all of the video which is available for capture. Designers must also provide tools which make it easier for operators to locate the particular video in which they are interested based on the task being performed. In the past, video analysis algorithms, video compression algorithms, and video storage methods have all been designed and developed independently. It is desirable to store and process the video using methods which are optimized based on making the ultimate uses of the video more efficient or effective.
In security, surveillance, and monitoring applications, operators are often interested in viewing video of a person, vehicle, or object which is moving throughout a specified area. Often, the area is large enough that video coverage of the area requires several, tens, or even hundreds of cameras. The movement of the person, vehicle, or object throughout the area is captured by different cameras at different points in the path of movement. Consequently, the video of interest may be spread across video streams which have been captured by multiple cameras. In order to view a single continuous video of the movement of the person or object throughout the various areas, several things must occur. First, it must be determined which of the video streams contain the information of interest. Next, the location of the video of interest within those video streams must be identified. Finally, the video segments of interest must be spliced or linked together in the appropriate order to create a contiguous video of the person or object of interest which can be viewed in a continuous manner.